Electronic devices, such as mobile phones and personal digital assistants (PDA's), often contain firmware and application software that are either provided by the manufacturers of the electronic devices, by telecommunication carriers, or by third parties. Electronic devices, such as high-end mobile phones, often contain a flash memory card, sometimes called an MMC card. The electronic devices may contain a flash memory card reader that is employed to read information on the flash memory cards that are inserted by end users.
Quite often, flash memory cards are used to store content such as digital photographs or audio files by the end user.
If firmware or firmware components are to be changed, it is often very tricky to update the firmware components in an electronic device. The electronic device must have sufficient memory available to download an update package and to execute an update process. Changes to firmware or firmware components of the electronic device must be performed in a fault tolerant mode and fault tolerant code are not easy to implement.
Typically, attempts to upgrade firmware and/or software in electronic devices, such as GSM mobile phones, are often hampered by the long update times required to update flash in a fault tolerant mode. Typically two writes per block of updated code is necessary. In addition, various types of flash exist such as, for example, NAND and NOR flash memory. Addressing firmware updates across various types of flash memory devices is a big challenge and is currently not easily solved. In addition, some electronic devices may not have sufficient memory to store a large update package or to conduct updates. Some devices with an update agent are not capable of updating in a fault tolerant mode.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.